<html>
<head><meta charset="utf-8"><title>Riccardo D&#x27;Ambrosio · new members · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/index.html">new members</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html">Riccardo D&#x27;Ambrosio</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="191565164"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565164" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Riccardo D&#x27;Ambrosio <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565164">(Mar 24 2020 at 04:07)</a>:</h4>
<p>Hello everyone, i came because i believe rust is a great language, and i would love to be a part of it.<br>
I am particularly interesting in things like rustc (LLVM and the borrow checker), however i am totally stumped on where to get started, even looking at the lexer i am a little perplexed due to how many things it relies on lol. So not really sure where to start. If anyone could give me any tips or resources it would be greatly appreciated :)</p>



<a name="191565727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565727">(Mar 24 2020 at 04:23)</a>:</h4>
<p>Hi <span class="user-mention" data-user-id="276242">@Riccardo D'Ambrosio</span> </p>
<p>For work on LLVM / codegen, there's a stream t-compiler/wg-llvm, and for the borrow checker you'll want to look at t-compiler/wg-polonius.<br>
The lexer is quite far removed from either of those <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="191565734"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565734" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565734">(Mar 24 2020 at 04:23)</a>:</h4>
<p>If you haven't already, you may want to take a peek at <a href="https://rustc-dev-guide.rust-lang.org/about-this-guide.html" target="_blank" title="https://rustc-dev-guide.rust-lang.org/about-this-guide.html">https://rustc-dev-guide.rust-lang.org/about-this-guide.html</a></p>



<a name="191565857"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565857" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Riccardo D&#x27;Ambrosio <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565857">(Mar 24 2020 at 04:27)</a>:</h4>
<p>lol i was looking for that guide, i remember it  but for some reason i just could not find it, thank you <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span>. I will read the guide then see if i can get any grasp of how the code works. a big challenge is just finding what does what and where by how many directories there are lol.</p>



<a name="191565864"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565864" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565864">(Mar 24 2020 at 04:27)</a>:</h4>
<p>It's a big machine ^^ -- but it's getting better organized these days</p>



<a name="191565905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565905">(Mar 24 2020 at 04:28)</a>:</h4>
<p>I would recommend starting out with some simpler task like fixing a bug (e.g., an ICE), improving a diagnostic, or some such</p>



<a name="191565906"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565906" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Riccardo D&#x27;Ambrosio <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565906">(Mar 24 2020 at 04:28)</a>:</h4>
<p>Who is responsible for the initial lexing and parsing? is it just a general thing and rustc only deals with the AST?</p>



<a name="191565917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565917">(Mar 24 2020 at 04:29)</a>:</h4>
<p>lexing &amp; parsing is handled in <code>rustc_parse</code></p>



<a name="191565966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Riccardo D&#x27;Ambrosio <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565966">(Mar 24 2020 at 04:30)</a>:</h4>
<p>ah alright, so anything in t-compiler deals with the AST or other intermediates as its input?</p>



<a name="191565970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565970">(Mar 24 2020 at 04:30)</a>:</h4>
<p>it spits out an AST, which gets expanded due to macros, and name resolution happens on AST too. Then we desugar the AST into HIR, another form of AST but simpler</p>



<a name="191565980"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565980" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565980">(Mar 24 2020 at 04:30)</a>:</h4>
<p>t-compiler means "the compiler team" (<a href="https://www.rust-lang.org/governance/teams/compiler" target="_blank" title="https://www.rust-lang.org/governance/teams/compiler">https://www.rust-lang.org/governance/teams/compiler</a>)</p>



<a name="191565984"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565984" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Riccardo D&#x27;Ambrosio <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565984">(Mar 24 2020 at 04:30)</a>:</h4>
<p>do you happen to know if there is a way of having rustc spit out intermediate representations like the AST, LLVM code, etc?</p>



<a name="191565987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Riccardo D&#x27;Ambrosio <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565987">(Mar 24 2020 at 04:31)</a>:</h4>
<p>Ah alright, misinterpreted <span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<a name="191565994"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191565994" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191565994">(Mar 24 2020 at 04:31)</a>:</h4>
<p>for example, <code>t-compiler/wg-traits</code> is the compiler team working group for the trait system</p>



<a name="191566002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191566002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Riccardo D&#x27;Ambrosio <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191566002">(Mar 24 2020 at 04:32)</a>:</h4>
<p>Yeah that makes sense, i wasnt sure what wg meant, thank you</p>



<a name="191566040"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191566040" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191566040">(Mar 24 2020 at 04:32)</a>:</h4>
<p>spitting out the AST vs. LLVM differs; the compiler can emit bitcode via <code>--emit</code></p>



<a name="191566048"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191566048" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191566048">(Mar 24 2020 at 04:33)</a>:</h4>
<p>for spitting out other IRs you can use <code>-Z unpretty</code></p>



<a name="191566052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191566052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191566052">(Mar 24 2020 at 04:33)</a>:</h4>
<p>MIR can be spit out with <code>--emit mir</code></p>



<a name="191566101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191566101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Riccardo D&#x27;Ambrosio <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191566101">(Mar 24 2020 at 04:34)</a>:</h4>
<p>Cool!, thank you a lot for your help <span aria-label="+1" class="emoji emoji-1f44d" role="img" title="+1">:+1:</span></p>



<a name="191566131"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/122652-new%20members/topic/Riccardo%20D%27Ambrosio/near/191566131" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/122652-new-members/topic/Riccardo.20D&#x27;Ambrosio.html#191566131">(Mar 24 2020 at 04:35)</a>:</h4>
<p><span aria-label="slight smile" class="emoji emoji-1f642" role="img" title="slight smile">:slight_smile:</span></p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>